X-Git-Url: https://git.r.bdr.sh/rbdr/super-polarity/blobdiff_plain/097781e6ad3f7bb1c13c16ff7b6bb7219764fb29..b587e9d8e0cc5eb1edf972fd3b644704441e5289:/Super%20Polarity/ScreenManager.cs diff --git a/Super Polarity/ScreenManager.cs b/Super Polarity/ScreenManager.cs index 04c10a4..b88741b 100644 --- a/Super Polarity/ScreenManager.cs +++ b/Super Polarity/ScreenManager.cs @@ -19,12 +19,22 @@ namespace SuperPolarity static public void Push(Screen screen) { + if (Screens.Count > 0) + { + Screens.Peek().Active = false; + } + + screen.LoadContent(); + screen.Active = true; Screens.Push(screen); } static public void Pop() { - Screens.Pop(); + var screen = Screens.Pop(); + screen.Active = false; + screen.CleanUp(); + Screens.Peek().Active = true; } static public void Update(GameTime gameTime) @@ -34,10 +44,7 @@ namespace SuperPolarity static public void Draw(SpriteBatch spriteBatch) { - foreach (Screen screen in Screens) - { - screen.Draw(spriteBatch); - } + Screens.Peek().Draw(spriteBatch); } internal static void SetGame(SuperPolarity game)